﻿using DataLayer;
using SupportLayer.Constantes.Outros;
using SupportLayer.Enums;
using SupportLayer.Objetos.Usuario;
using SupportLayer.Util;
using SupportLayer.Util.ExtensionMethods;
using System;
using System.Collections.Generic;
using System.Web.UI;

namespace TranSys_Web.TranSys
{
  public partial class login : BasePage
  {
    public CodigoErro CodigoErro
    {
      get
      {
        if ((Request.QueryString[OUTROS.CODIGO_ERRO] != null)
          && (Request.QueryString[OUTROS.CODIGO_ERRO] != ""))
          return (CodigoErro)Convert.ToInt32(Request.QueryString[OUTROS.CODIGO_ERRO].ToString());

        return SupportLayer.Enums.CodigoErro.SemErro;
      }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
      if (CodigoErro != CodigoErro.SemErro)
        switch (CodigoErro)
        {
          case CodigoErro.UsuarioNaoLogado:
            lblErro.Text = "A sua sessão de Login expirou! Por favor, insira seus dados novamente!";
            break;
          case CodigoErro.LinkInvalido:
            lblErro.Text = "O link requisitado é inválido!";
            break;
          default:
            lblErro.Text = "";
            break;
        }

      txtUsuario.Focus();
    }

    protected void btnEntrar_Click(object sender, ImageClickEventArgs e)
    {
      try
      {
        if (txtUsuario.Text.Equals(string.Empty))
          throw new ApplicationException("O campo Usuário não pode ficar em branco!");

        if (txtSenha.Text.Equals(string.Empty))
          throw new ApplicationException("O campo Senha não pode ficar em branco!");

        UsuarioClass Usuario = Banco.Login(txtUsuario.Text, Criptografia.EncryptMd5(txtSenha.Text));

        if (Usuario.isNull())
          throw new ApplicationException("O usuário e senha digitados não conferem!");

        if (Usuario.DataInativar <= DateTime.Now)
          throw new ApplicationException("O seu período de avaliação terminou!");

        if (Usuario.ConfirmouEmail == "N")
          throw new ApplicationException("Verifique seu e-mail, e siga as instruções para ativar seu login!");

        Session[OUTROS.USUARIO_ID] = Usuario.ID;
        Response.Redirect("createPlaca.aspx");
      }
      catch (Exception ex)
      {

        lblErro.Text = ex.Message;
      }
    }

    public override void CarregaDados()
    {
      throw new NotImplementedException();
    }
  }
}